package servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import manager.AdministradorComanda;
import manager.AdministradorMesa;
import NegocioVO.ComandaVO;
import NegocioVO.MesaVO;


public class ControladorFactura extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
  

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String action = request.getParameter("action");
        String jspPage = null;
       
       
        if ((action == null) || (action.length() < 1))
        {
            action = "default";
        }
        
        if ("default".equals(action))
        {
        	String cookieName = "userLocal";
        	Cookie cookies[] = request.getCookies();
        	Cookie myCookie = null;
        	String aux = null;
        	if (cookies != null) {
        		for (int i = 0; i < cookies.length; i++) {
        			if (cookies[i].getName().equals(cookieName)) {
        				myCookie = cookies[i];
        				break;
        			}
        		}
        	}
        	String LocalId;
        	LocalId = myCookie.getValue();
        	List<MesaVO> mesasOc = new ArrayList<MesaVO>();
        	mesasOc = AdministradorMesa.getInstancia().getMesasOcupadas(LocalId);
			request.setAttribute("mesasOc", mesasOc);
            jspPage = "/jsp/Facturar.jsp";
        }

        if ("traerComandas".equals(action)){
        	String cookieName = "userLocal";
        	Cookie cookies[] = request.getCookies();
        	Cookie myCookie = null;
        	String aux = null;
        	if (cookies != null) {
        		for (int i = 0; i < cookies.length; i++) {
        			if (cookies[i].getName().equals(cookieName)) {
        				myCookie = cookies[i];
        				break;
        			}
        		}
        	}
        	String LocalId;
        	LocalId = myCookie.getValue();
        	
        	List<ComandaVO> comandasAbiertas = new ArrayList<ComandaVO>();
        	comandasAbiertas = AdministradorComanda.getInstancia().getComandasAbiertasPorPedidos(LocalId);
			request.setAttribute("comandasAbiertas", comandasAbiertas);
            jspPage = "/jsp/Facturar.jsp";
        	
        }
        
        else if ("facturar".equals(action)){
         	int idMesa = Integer.valueOf(request.getParameter("mesasOc"));
         	String mediopago = request.getParameter("mediopago");
         	
       	 AdministradorFactura.getInstancia().facturar (idMesa, mediopago);
       	 int total = AdministradorFactura.getInstancia().getTotal();
       	 
       	request.setAttribute("totalFactura", total);
          }
        
        System.out.println(action);
        dispatch(jspPage, request, response);
	}
	
	
	protected void dispatch(String jsp, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        if (jsp != null)
        {
            RequestDispatcher rd = request.getRequestDispatcher(jsp);
            rd.forward(request, response);
        }
    }
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

}
